const express = require('express');
const router = express.Router();

/**
 * 算法
 */
let al_allprocess =
{
    "update_News_task": 0,
    "update_Hotwords_task": 0,
    "update_Sentiment_task": 0,
    "update_Cluster_task": 0,
    "heartbeats_task": 0
};

let al_restartprocess = []

// 获取活着的进程
router.post('/al_getactive', (req, res) => {
    // 算法组发送的req体
    // {
    //     task_alive:["x_task","xx_task",...]
    // }

    let task_list = req.body.task_alive
    for (let key in al_allprocess) {
        if (task_list.indexOf(key) == -1) {
            al_allprocess[key] = 0;
        }
        else {
            al_allprocess[key] = 1;
        }

    }
    res.end()
    console.log(al_allprocess);
})

// 向前端更新死亡进程
router.get('/al_updateactive', (req, res) => {
    res.send(al_allprocess);
})

// 接收管理员重启进程任务
router.post('/al_restart', (req, res) => {
    // 管理员发送req体
    // {
    //     restartprocess:"xx_task"
    // }


    let process = req.body.restartprocess
    if (al_restartprocess.indexOf(process) == -1)
        al_restartprocess.push(process)

    res.send("重启进程" + process + "中...");
    // al_allprocess[al_restartprocess] = 1;
})

// 算法重启进程
router.get('/al_activate', (req, res) => {
    // 如果复活队列无任务，返回None
    // 否则返回队首

    if (al_restartprocess.length == 0)
        res.send("None")
    else
        res.send(al_restartprocess[0]);
})

// 算法告知复活成功
router.post("/al_activated", (req, res) => {
    // req结构：
    // {
    //     process: "xx_task",
    //     status: 1 | 0
    // }

    // 如果复活成功，则从列表中去除
    if (req.body.status = 1) {
        al_restartprocess.pop(req.body.process)
        al_allprocess[req.body.process] = 1
        // 然后应该告知前端，让他们修改显示状态
    }

    res.end()
})


/**
 * 爬虫
 */
 let sp_allprocess=
 {"sina":0,
"xinhua":0,
"ifeng":0};
 
 let sp_restartprocess = []
 
 // 获取活着的进程
 router.post('/sp_getactive', (req, res) => {
     // 算法组发送的req体
     // {
     //     task_alive:["x_task","xx_task",...]
     // }
 
     let task_list = req.body.task_alive
     for (let key in sp_allprocess) {
         if (task_list.indexOf(key) == -1) {
             sp_allprocess[key] = 0;
         }
         else {
             sp_allprocess[key] = 1;
         }
 
     }
     res.end()
     console.log(sp_allprocess);
 })
 
 // 向前端更新死亡进程
 router.get('/sp_updateactive', (req, res) => {
     res.send(sp_allprocess);
 })
 
 // 接收管理员重启进程任务
 router.post('/sp_restart', (req, res) => {
     // 管理员发送req体
     // {
     //     restartprocess:"xx_task"
     // }
 
 
     let process = req.body.restartprocess
     if (sp_restartprocess.indexOf(process) == -1)
         sp_restartprocess.push(process)
 
     res.send("重启进程" + sp_restartprocess + "中...");
     // sp_allprocess[al_restartprocess] = 1;
 })
 
 // 算法重启进程
 router.get('/sp_activate', (req, res) => {
     // 如果复活队列无任务，返回None
     // 否则返回队首
 
     if (sp_restartprocess.length == 0)
         res.send("None")
     else
         res.send(sp_restartprocess[0]);
 })
 
 // 算法告知复活成功
 router.post("/sp_activated", (req, res) => {
     // req结构：
     // {
     //     process: "xx_task",
     //     status: 1 | 0
     // }
 
     // 如果复活成功，则从列表中去除
     if (req.body.status = 1) {
         sp_restartprocess.pop(req.body.process)
         sp_allprocess[req.body.process] = 1
         // 然后应该告知前端，让他们修改显示状态
     }
 
     res.end()
 })
 





module.exports = router;